﻿///*
// *Author:刘晓庆
// *CreateDate:2014-04-10 11:16
// *Descrition:调用rest.winenice.com接口，区别于ActionHandler酒美商城接口的调用。
// *           主要用于验证使用酒美网账号登陆是否合法。
// */


//using System;
//using System.Collections.Generic;
//using System.Text;
//using System.Configuration;
//using System.Reflection;
//using WineNiceRest.Util;

//namespace JiuMeiMall.PMethod
//{
//    /// <summary>
//    /// 请求代理:
//    /// 商户编码/密钥后期由程序加载时动态获取,前期先实现静态数据
//    /// </summary>
//    public class RestHandler
//    {
//        private static string url = ConfigurationManager.AppSettings["WebRestUrl"];
//        /// <summary>
//        /// 请求商户名
//        /// </summary>
//        private static string MerchantCode = ConfigurationManager.AppSettings["WebApp_Key"];
//        /// <summary>
//        /// 请求密钥
//        /// </summary>
//        private static string AppSecret = ConfigurationManager.AppSettings["WebAppSecret"];
//        /// <summary>
//        /// 版本信息
//        /// </summary>
//        private static string Version = ConfigurationManager.AppSettings["WebVersion"];
//        /// <summary>
//        /// 方法名
//        /// </summary>
//        public string MethodName { get; set; }
//        /// <summary>
//        /// 实体类
//        /// </summary>
//        public object Model { get; set; }
//        /// <summary>
//        /// 错误信息
//        /// </summary>
//        public string ErrorMsg { get; set; }
//        public RestHandler()
//        {

//        }
//        public RestHandler(string methodName, object model)
//        {
//            this.MethodName = methodName;
//            this.Model = model;
//        }
//        /// <summary>
//        /// 获得字符串数据
//        /// </summary>
//        /// <returns></returns>
//        public string GetStringData()
//        {
//            WineNiceRest.Util.WebUtils wu = new WineNiceRest.Util.WebUtils();
//            WineNiceRest.Util.WineNiceDictionary wnd = new WineNiceRest.Util.WineNiceDictionary();
//            string txt = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
//            wnd.Add("app_key", MerchantCode);
//            wnd.Add("method", MethodName);
//            wnd.Add("parameter", txt);
//            wnd.Add("timestamp", DateTime.Now.ToString());
//            wnd.Add("version", Version);
//            wnd.Add("sign", WineNiceRest.Util.WineNiceUtils.SignWineNiceRequest(wnd, AppSecret));
//            string x = wu.DoPost(url, wnd);
//            if (string.IsNullOrEmpty(x))
//            {
//                Log4NetExport.Create(MethodBase.GetCurrentMethod().DeclaringType).Info("服务器连接超时");
//                return x;
//            }
//            WineNiceRest.Util.WineNiceResponse wnr = Newtonsoft.Json.JsonConvert.DeserializeObject<WineNiceRest.Util.WineNiceResponse>(x);
//            if (wnr != null)
//            {
//                if (wnr.ErrCode != "0000")
//                {
//                    Log4NetExport.Create(MethodBase.GetCurrentMethod().DeclaringType).Error(wnr.ErrCode + "," + wnr.ErrMsg);
//                }
//            }
//            this.ErrorMsg = wnr.ErrCode + "|" + wnr.ErrMsg;
//            return wnr.Body;
//        }
//        /// <summary>
//        /// 获得实体对象
//        /// </summary>
//        /// <param name="typeName"></param>
//        /// <returns></returns>
//        public object GetModelData(Type type)
//        {
//            try
//            {
//                string data = GetStringData();
//                if (string.IsNullOrEmpty(data))
//                {
//                    return null;
//                }
//                return Newtonsoft.Json.JsonConvert.DeserializeObject(data, type);
//            }
//            catch (Exception ex)
//            {
//                Log4NetExport.Create(MethodBase.GetCurrentMethod().DeclaringType).Error("错误", ex);
//                return null;
//            }
//        }

//        /// <summary>
//        /// 请求获取响应实体
//        /// </summary>
//        /// <typeparam name="T">响应类型</typeparam>
//        /// <returns>响应</returns>
//        public T GetModelData<T>()
//        {
//            T t = default(T);
//            try
//            {
//                string data = GetStringData();
//                if (!string.IsNullOrEmpty(data))
//                {
//                    return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(data);
//                }
//            }
//            catch (Exception ex)
//            {
//                Log4NetExport.Create(MethodBase.GetCurrentMethod().DeclaringType).Error("错误", ex);
//            }
//            return t;
//        }

//        /// <summary>
//        /// 请求获取响应实体
//        /// </summary>
//        /// <typeparam name="T">响应类型</typeparam>
//        /// <param name="body">相应实体</param>
//        /// <returns>响应</returns>
//        public static T GetModelData<T>(string body)
//        {
//            T t = default(T);
//            try
//            {
//                if (!string.IsNullOrEmpty(body))
//                {
//                    return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(body);
//                }
//            }
//            catch (Exception ex)
//            {
//                Log4NetExport.Create(MethodBase.GetCurrentMethod().DeclaringType).Error("错误", ex);
//            }
//            return t;
//        }
//    }
//}
